package com.wolfeyes.framework.shiro;

import org.apache.shiro.authc.AuthenticationInfo;
import org.apache.shiro.authc.AuthenticationToken;
import org.apache.shiro.authc.credential.CredentialsMatcher;

/**
* @see Talk is cheap, Show me the code. -- Linus Torvalds
* @title 使用jwt凭证校验器作为shiro的校验器，CredentialsMatcher-凭证校验接口（其实就是密码的校验器）
* @author yanyljava
* @create 2022-01-14 21:25
*/
public class JwtCredentialsMatcher implements CredentialsMatcher {
	
	@Override
	public boolean doCredentialsMatch(AuthenticationToken authenticationToken, AuthenticationInfo authenticationInfo) {
		
		// 创建一个CredentialsMatcher接口的实现类，这里我们不对密码进行校验，直接返回true。
		// 因为当你能拿到Token的时候，其实就已经证明账号（用户名）和密码已经校验过了。
		// 所以账号（用户名）和密码的校验实际应该是在业务层进行校验（交由业务层面处理），校验通过之后才创建Token返回给前端（颁发token）。
		return authenticationToken instanceof JwtToken;
	}
}
